package path.calculator;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

public class PathCalculator {
    private int nodeCount;

    HashMap<Character, String> keyCannotBeBefore = new HashMap<Character, String>();

    public PathCalculator(int nodeCount) {
        this.nodeCount = nodeCount;
    }

    public int totalPaths() {
        PermutationGenerator generator = new PermutationGenerator(nodeCount, keyCannotBeBefore);

        List<String> validPermutations = generator.validPermutations();

        return validPermutations.size();
    }

    public void mustFlowFromNodeToNode(char previous, char latter) {

        if (!keyCannotBeBefore.containsKey(latter))
            keyCannotBeBefore.put(latter, "");

        keyCannotBeBefore.put(latter, keyCannotBeBefore.get(latter) + previous);
    }
}
